1. Field of Invention
The invention relates to a redundant storage virtualization subsystem and system and, in particular, to a redundant storage virtualization subsystem and system with host-side SAS connectivity.
2. Related Art
Storage virtualization is a technology that virtualizes different sections of physical storage devices (PSDs) to be logical storage entities provided for a host system to access. The logical storage entities are referred to as the logical media units (LMUs) hereinafter. This technology is primarily used in the storage virtualization of a redundant array of independent disks (RAID). Using this RAID technology, smaller PSDs can be combined to form a LMU with a larger capacity, fault tolerance ability, and better efficiency.
The primary purpose of the storage virtualization controller (SVC) is to achieve the above-mentioned functions. The SVC maps combinations of sections of the PSDs to the LMUs visible to the host system. When an I/O request is received by the SVC from the host system, it is first parsed and interpreted, and then the associated operations and data are translated into the PSD I/O requests. This process may be indirect with operations cached, delayed (e.g. write-back), anticipated (read-ahead), grouped, etc., to improve the efficiency and other operational characteristics. Therefore, a host I/O request may not necessarily have directly one-to-one correspondence with a PSD I/O request.
An external (or stand-alone) SVC is a SVC that connects to the host system via an I/O interface. It is also capable of being connected to an external device resided out of the host system. Generally speaking, the external SVC operates independent of the host system.
An external (or stand-alone) direct-access RAID controller is one example of the external SVC. The RAID controller combines sections of one or more PSDs into LMUs. Their constitution is determined by the nature of a particular RAID level. The LMUs thus formed are contiguously addressable by the host system so that each LMU can be utilized. Typically, a single RAID controller can support many RAID levels. Therefore, different LMUs may consist of sections of PSDs combined in different fashions by virtue of different RAID levels. The different LMUs combined in different fashions have different characteristics of the RAID levels, respectively.
Another example of the external SVC is a JBOD emulation controller. A JBOD, short for “Just a Bunch of Drives”, is a set of physical direct access storage devices that are directly connected to a host system via one or more multiple-device I/O device interconnect channels. An intelligent JBOD emulation device is used to emulate multiple multiple-device I/O device interconnects to directly access storage devices by mapping I/O requests to the physical direct access storage devices, which are connected to the JBOD emulation device individually via I/O device interconnect channels.
The RAID system often uses the concept of redundancy to ensure the security and availability of data. On the drive side, user data fault tolerance ability is achieved by storing one or more sets of redundant data. On the host side, a pair of SVCs is configured as a redundant pair, called the SVC pair, thereby solving the problem when a single SVC malfunctions or fails. The design of the SVC pair is to ensure the continuous data access for the host when only one SVC malfunctions or fails. This can be implemented by adding one function to the SVC pair to allow the surviving SVC to take over the other one's jobs when one of the SVC pair malfunctions or fails.
On the drive side of the RAID system, each of the two SVCs in the SVC pair has to be able to access all the PSDs, whether the PSD is originally assigned to be managed by it. On the host side, each SVC in the SVC pair must have the ability to present all accessible resources to the host for its use when its mate SVC is originally offline or first online then offline (because of being malfunctioned, failed, or maintained, etc). These accessible resources include those originally assigned to be managed by the mate SVC.
One representative implementation on the above-mentioned drive side is to use a multiple-initiator multiple-device type of drive-side I/O device interconnects, such as the optical fibre or the parallel small computer system interface (parallel SCSI). All of the drive-side I/O device interconnects are connected to the two SVCs. Therefore, any one of the two SVCs can access any PSDs connected to the drive-side I/O device interconnects. When the two SVCs are operating on line, each of the PSDs is managed by one of the SVC pair. As to which one of the SVC pair manages the PSD is determined by user's settings or the system configuration. For example, for a LMU composed of PSDs, all of the PSDs in the LMU are managed by the SVC specified by the LMU.
Another basic ingredient of the redundant storage virtualization system is that each of the SVC pair has to be able to monitor the status of the other one. This can be implemented using an inter-controller communications channel (ICC) disposed between the two SVCs and used to exchange the operating statuses of the two SVCs. This communications channel may be a dedicated one, whose sole purpose is to exchange the parameters and data related to the operations of the redundant storage virtualization subsystem. Alternatively, this communications channel is a single or multiple host-side or drive-side I/O device interconnects. Through this kind of interconnects, these parameters or data exchange in operations can be multitasking-transmitted along with data related to the host-SVC or drive-SVC I/O requests on these interconnects.
The commonly seen standards of the I/O interface between the SVC pair and the host are the fibre channel (FC) and the parallel SCSI. Both the FC and the parallel SCSI are multiple-device I/O device interconnects. The bandwidth of the multiple-device I/O device interconnect is shared by all the hosts and devices connected to it. The FC has good communication quality, fast speed, and high expansibility. However, its cost is very high. Although the parallel SCSI is a good choice under the consideration of cost/performance, its parallel transmission structure and shared bus characteristic largely limits its speed upgrade and extension potential in the future. Aside form the usual serial ATA (SATA) interface, the FC and the parallel SCSI interfaces are also the major drive-side I/O device interconnects for connecting the controller redundant pair to the PSDs.
To break through the bottleneck in the enhancement of speed performance for modem and future higher-speed transmissions, the serial-attached SCSI (SAS) interface is thereby come with the tide of fashion. The SAS adopts the verified advantages of the parallel SCSI (reliable, rich and mature command sets) as well as a new serial structure to achieve amazing transmission rate (3.0 Gbits/sec, or 6.0 Gbits/sec, or above) and considerable expansibility (up to connecting 16384 devices using expanders). The SAS technique has been implemented on the drive side on the market and is a mature product of the connection interface between the SVC(s) and the PSDs.
On the other hand, due to the peer-to-peer connection characteristic of the SAS, it cannot provide multiple device IDs to the host to identify as in the case of the FC or the parallel SCSI. Therefore, when it is used on the host side as the connection interface between the SVC(s) and the host, how to inherit the identity of the failed controller is a problem to overcome. At any rate, it is foreseeable that the advantages of high performance and expansibility of the SAS will enable it to be used on the host side in the near future.
The concept of redundancy is also implemented on an “initiator.” The so-called “initiator” refers to the end that sends out commands. The SVC (or RAID system) that receives and executes the commands is considered as the “target.” In practice, the initiator can be a host computer, such as a server system, workstation, personal computer (PC) or any other related computers, or even another SVC. The concept of redundancy on the initiator is practically achieved by using the multi-path I/O technology. It can provide multi-path connections from the initiator(s) to the target(s), achieving virtues including fault tolerance, high availability, better performance, etc.